System to manage digital camera images

ABSTRACT

A system for managing files stored on a digital camera includes detection of the digital camera, automatic reception of thumbnail image files stored in the camera, and storage of the received thumbnail image files in a memory. 
     The system also includes a user interface for a windowing application for viewing system objects which includes a first area for displaying a hierarchical tree of system objects, a second area for displaying a thumbnail image corresponding to a system object selected in the first area, a third area adjacent to the second area for displaying a second icon indicating that a sound file is associated with the displayed thumbnail image, and a fourth area which surrounds the second area and the third area, wherein the fourth area may be selected and dragged to an icon representing a storage device in order to copy the displayed thumbnail image, a full-resolution image file associated with the displayed thumbnail image, and any associated sound files to the storage device. The second area may be selected and dragged to the icon representing the storage device in order to copy the full-resolution image file to the storage device, and the sound icon may be selected and dragged to the icon representing the storage device in order to copy any sound files associated with the displayed thumbnail image to the storage device.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention is directed to a system for managing andmanipulating images stored on a digital camera. More particularly, thepresent invention is related to a system for managing associatedfull-resolution image files, thumbnail image files, and sound filesstored in a digital camera using a personal computer having a windowingenvironment, wherein the system is integrated with standard userinterfaces of the windowing environment.

2. Description of the Related Art

Digital cameras are becoming increasingly prevalent in consumerhouseholds, as well as in businesses requiring capture and manipulationof digital images, such as internet merchandising or real estate. Mostof these digital camera users also own a personal computer system withwhich they envision managing and manipulating images captured usingtheir digital cameras. These personal computer systems most commonlyprovide a windowing operating environment in which intuitive andstandardized user interfaces are used for controlling various systemobjects, such as storage devices, files, and printers.

It is therefore desirable to manage a digital camera, as well as datafiles stored therein, using the standardized interfaces used to controlother system objects within the windowing environment. It is even moredesirable to customize the standardized interfaces so that specialfeatures specific to a digital camera may be controlled and exploited.

Kodak® attempts to address the foregoing by offering, with its digitalcameras, software which is minimally integrated with Microsoft®Windows95®. In this regard, Windows95 includes Explorer®, which is anapplication used to view a hierarchical tree of system objects arrangedinto folders and sub-folders, as well as the contents of a selectedfolder or sub-folder. As shown in FIG. 48, Kodak's software causes theExplorer application to display icon 1001 representing a Kodak digitalcamera as a system object in All Folders window 1002. In addition, acamera memory located within the Kodak digital camera is represented byicon 1003 and is shown as a sub-folder of the Kodak digital camera.

Since icon 1003 is selected in FIG. 48, Folder Contents window 1004illustrates the contents of the camera memory. Accordingly, each iconshown in window 1004 represents a file stored in the camera memory.However, the represented files are in a Kodak proprietary format (.kdc)and neither the displayed icons or the filenames listed therewith areparticularly helpful to a user in determining the contents of anyrepresented file.

SUMMARY OF THE INVENTION

The inventors herein have concluded that what is needed is a system forintegrating management of a digital camera into a windowing environmentwherein convenient and intuitive manipulation of associatedfull-resolution image files, thumbnail image files, and sound filesstored in the camera is provided, along with standard windowing featuressuch as customized context menus and intelligent “drag and drop”functionality.

The present invention addresses the foregoing by integrating a digitalcamera as a system object into windowing applications for viewing systemobjects, such as Explorer or My Computer®, and by providing visualfeedback and drag and drop functionality with respect to all data filesstored in the camera. As a result, associated full-resolution imagefiles, thumbnail image files, and sound files stored in the camera maybe easily manipulated either individually or as a single unit.

Therefore, in one aspect, the present invention concerns a system tomanage files stored on a digital camera in a windowing environmentincluding display of an icon representing a digital camera as a systemobject in a system object directory, display of an icon representing afilm canister within the digital camera as a sub-folder of the digitalcamera in the system object directory, and display of a plurality ofthumbnail image files in the film canister in response to user selectionof the film canister. Accordingly, this aspect of the present inventionallows a user to view thumbnail image files stored in the digital camerasimply by selecting a film canister displayed within an application forviewing system objects. In addition, a film canister preferably includesa plurality of photo groups of associated thumbnail image files,full-resolution image files and sound files.

In a preferred aspect, the icon representing the film canister may bedragged and dropped into any folder on a hard disk or a network disk,wherein the plurality of thumbnail image files will be displayed uponsubsequent selection of the dragged and dropped icon. In thisembodiment, the feature to display thumbnail image files upon selectionof a film canister is advantageously preserved even if the film canisteris located in a storage device other than the digital camera.

In another aspect, the present invention concerns a system to monitor acomputer system for connection to a digital camera, including detectionof the digital camera connected to the computer system, reception ofthumbnail image files stored in the camera automatically after thecamera is detected, and storage of the received thumbnail image files ina cache memory. In a preferred embodiment, full-resolution files arereceived and stored in the cache memory after the thumbnail image filesare stored in the cache memory. Moreover, the full-resolution files arereceived and stored either sequentially or based on a selection of athumbnail image. Due to the automatic caching of files stored in adetected camera, the invention allows multiple client applications toaccess quickly files from the digital camera by diversion of requestsfor access to the cache.

In yet another aspect, the present invention relates to a system tocontrol a digital camera toolbox application user interface includingdisplay of a toolbox window, the toolbox window including a Settingsbutton, a Download button, a View button, a Print button, and an Uploadbutton. The toolbox application also provides control of settings of adigital camera in a case the Settings button is selected, viewing of allthumbnail image files stored in the camera in a case the View button isselected, downloading of all thumbnail image files, full-resolutionimage files, and sound files stored in the camera in a case the Downloadbutton is selected, printing of at least one contact sheet of allthumbnail image files stored in the camera in a case the Print button isselected, and uploading of all full-resolution image files stored in thecamera to an internet photo service provider in a case the Upload buttonis selected. In a preferred arrangement, the Settings button providescontrol over downloading and uploading parameters. The one-buttonfunctionality provided by the toolbox application allows easy operationof commonly-used camera management functions.

The present invention also relates to a user interface for a windowingapplication for viewing system objects which includes a first area fordisplaying a hierarchical tree of system objects, and a second area fordisplaying a thumbnail image corresponding to a system object selectedin the first area. Preferably, the second area may be selected anddragged to an icon representing a storage device in order to copy afull-resolution image file associated with the displayed thumbnail imageto the storage device.

The user interface also preferably includes a third area adjacent to thesecond area for displaying an icon indicating that a sound file isassociated with the displayed thumbnail image, wherein the third areamay be selected and dragged to the icon representing the storage devicein order to copy any sound files associated with the displayed thumbnailimage to the storage device. A further preferred aspect includes afourth area which surrounds the second area and the third area, whereinthe fourth area may be selected and dragged to the icon representing thestorage device in order to copy the displayed thumbnail image, theassociated full-resolution image file and any associated sound files tothe storage device.

Advantageously, this aspect masks the existence of separate butassociated thumbnail image files, full-resolution files, and sound filesfrom the user. As a result, this aspect provides simple and intelligentmanipulation of data files produced by a digital camera.

This brief summary has been provided so that the nature of the inventionmay be understood quickly. A more complete understanding of theinvention can be obtained by reference to the following detaileddescription of the preferred embodiment thereof in connection with theattached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an outward view of representative computing equipmentembodying the present invention.

FIG. 2 is a block diagram of the internal architecture of the FIG. 1computing system.

FIG. 3 is a block diagram of the internal architecture of a digitalcamera for use in conjunction with the present invention.

FIG. 4 is a flow diagram showing process steps of a port monitoraccording to the present invention.

FIG. 5 is a view of an operating system desktop displaying a toolboxapplication user interface window according to the present invention.

FIG. 6 is a Settings property sheet accessible through the FIG. 5toolbox user interface.

FIG. 7 is a diagram illustrating minimization of a toolbox window.

FIG. 8 is a diagram illustrating minimization of a toolbox window.

FIG. 9 is a view of a task bar context menu corresponding to the FIG. 5toolbox application.

FIG. 10 is a view of a title bar pop-up menu.

FIG. 11 is a view of a sample Settings dialog specific to a Canon®PowerShot 600® digital camera.

FIG. 12 is a view of a Communications Settings dialog for setting cameracommunication parameters.

FIG. 13 is a view of a Settings property sheet with a Save Photosproperty page displayed.

FIG. 14 is a view of a Set Directory dialog for selecting a picturedestination directory.

FIG. 15 is a view of a Deletion Warning dialog.

FIG. 16 is a view of an Internet property page of a Settings propertysheet.

FIG. 17 is a view of a Save Photos dialog for setting photo savingparameters.

FIG. 18 is a view of a Saving Status dialog.

FIG. 19 is a view of a Print dialog to control printing of contactsheets according to the present invention.

FIG. 20 is a view of a Printing Status dialog.

FIG. 21 is a view of an Uploading Status dialog.

FIG. 22 is a view of a Windows95 Explorer user interface according tothe present invention.

FIG. 23 is a view of a photo group displayed according to the presentinvention.

FIG. 24 is a view of a photo group displayed according to the presentinvention.

FIG. 25 is a view of a photo group context menu according to the presentinvention.

FIG. 26 is a view of a Photo Group property page.

FIG. 27 is a view of a Multiple Photo Group property page.

FIG. 28 is a view of a Moving Warning dialog.

FIG. 29 is a view of a Windows95 Explorer toolbar according to thepresent invention.

FIG. 30 is a view illustrating rotation of a displayed thumbnail image.

FIG. 31 is a view of a Save Photos dialog for setting saving parameters.

FIG. 32 is a view of a Save Photos dialog for setting saving parameters.

FIG. 33 is a view of a Save Photos dialog for setting saving parameters.

FIG. 34 is a view of a Deletion Warning dialog.

FIG. 35 is a view of a Print dialog for setting photo printingparameters.

FIG. 36 is a view of printed image files.

FIG. 37 shows representative views of sheets of printed image files.

FIG. 38 is a view of a Print dialog for setting printing parameters.

FIG. 39 is a view of a Print dialog for setting printing parameters.

FIG. 40 is a view of Print dialog for setting printing parameters.

FIG. 41 is a view of a contact sheet printed in accordance with thepresent invention.

FIG. 42 is a view of Print dialog for setting contact sheet printingparameters.

FIG. 43 is a view of Print dialog for setting contact sheet printingparameters.

FIG. 44 is a view of a Windows95 Explorer user interface according tothe present invention.

FIG. 45 is a view of a Windows95 Explorer user interface according tothe present invention.

FIG. 46 is a view of a Windows95 Explorer user interface according tothe present invention.

FIG. 47 is a view of a Windows95 Explorer user interface according tothe present invention.

FIG. 48 is a view of a conventional graphical user interface formanaging digital camera images.

FIG. 49 is a view of a Windows95 Explorer File pull-down menu accordingto the present invention.

FIG. 50 is a view of a Windows95 Explorer Edit pull-down menu accordingto the present invention.

FIG. 51 is a view of a Windows95 Explorer View pull-down menu accordingto the present invention.

FIG. 52 is a view of a Confirm File Delete dialog.

FIG. 53 is a view of a Windows95 Explorer Tools pull-down menu.

FIG. 54 is a view of a Windows95 Explorer Help pull-down menu.

FIG. 55 is a view of an Options property sheet.

FIG. 56 is a view of a File Delete Warning dialog.

FIG. 57 is a view illustrating invocation of an Explorer user interfaceaccording to the present invention.

FIG. 58 is a view illustrating invocation of an Explorer user interfaceaccording to the present invention.

FIG. 59 is a view illustrating invocation of an Explorer user interfaceaccording to the present invention.

FIG. 60 is a view illustrating invocation of an Explorer user interfaceaccording to the present invention.

FIG. 61 is a view illustrating invocation of an Explorer user interfaceaccording to the present invention.

FIG. 62 is a list of Component Object Model interfaces supported by ashell extension module embodying the present invention.

FIG. 63, comprising FIG. 63 a to FIG. 63 d, is a list of object classesfor implementing the FIG. 62 interfaces.

FIG. 64 is a list of Windows95 registry keys for supporting camera andcanister system objects in accordance with the present invention.

FIG. 65 is a view illustrating invocation of a TWAIN user interface froman image processing application.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 1 is a representational view of a computer system in which thepresent invention may be utilized. Computer system 1 is preferably anIBM PC-compatible system executing Microsoft Windows95. Computer system1 may be another type of system executing a windowing environment, suchas a Macintosh or the like. Provided with computer system 1 are display2, which is preferably a color monitor, keyboard 4 for entering usercommands, and pointing device 5 such as a mouse for pointing to and formanipulating graphical user interfaces and other objects displayed ondisplay 2.

Computer system 1 also includes a mass storage device such as fixed disk6 for storing computer-executable process steps to provide a portmonitor, a toolbox application, a Windows95 Explorer shell extensionmodule, and Windows95 registry keys according to the present invention.Fixed disk 6 may also store image processing applications, wordprocessing applications, image files, and device drivers for use inconjunction with the present invention. The storage provided by fixeddisk 6 may also be provided by a CD-ROM accessed via a CD-ROM drive(both unshown).

Floppy disk drive 7 is used to access files stored on floppy disks fordirect loading into a Random Access Memory (RAM) of computer system 1,or into fixed disk 6. Computer-executable process steps or other filesmay also be retrieved over a network via network connection 9 or overthe World Wide Web (“WWW”) via World Wide Web connection 10.

Image files may also be input into computer system 1 using scanner 11.

In this regard, images retrieved from fixed disk 6, floppy disk 7,network connection 9, WWW connection 10, or scanner 11 may be outputdirectly to printer 12, which is preferably a color printer forproducing high quality color/photographic images, or such images may beretrieved, processed according to an image processing applicationexecuting in computer system 1, and sent to printer 12 thereafter.

Digital camera 14, such as a Canon PowerShot 350 or PowerShot 600digital camera, is used for capturing digital photos. The capturedphotos are preferably stored in camera 14 as both a full-resolution(1024 pixels×768 pixels) JPEG image file and a low-resolution thumbnail(60×80) TIFF image file, and may be associated with one or more soundfiles also stored in camera 14. Of course, other digital camera modelsstoring differently-formatted full-resolution image files and thumbnailimage files may be used in practicing the present invention.

Each of the files stored in camera 14 is preferably available fordownload to computer system 1 upon connection to computer system 1through a cabled or other type of connection. In this regard, althoughmost digital cameras are configured to connect to a serial port (notshown) of computer system 1, any other method of connection to computersystem 1 may be used in practicing the present invention. Furtherdetails of camera operation and of the files stored therein are givenbelow.

It should be understood that, although a programmable general purposecomputer is shown in FIG. 1, a dedicated computer terminal or other typeof data processing equipment can utilize a system for managing digitalcamera images as discussed below.

FIG. 2 is a detailed block diagram showing the internal architecture ofcomputer system 1. As shown in FIG. 2, computer system 1 includescentral processing unit (CPU) 15 which interfaces with computer bus 16.Also interfacing with computer bus 16 are scanner interface 17, digitalcamera interface 18, network interface 19, WWW interface 20, floppy diskdrive interface 21, display interface 22, printer interface 24, mouseinterface 25, keyboard interface 26, fixed disk 6, Read Only Memory(ROM) 27, and main RAM 29.

Main RAM 29 interfaces with computer bus 16 so as to provide memorystorage to CPU 15 during execution of computer-executable process steps.More specifically, CPU 15 loads process steps from fixed disk 6 into RAM29 and executes the stored process steps from RAM 29 in order to providea system for managing digital camera images according to the presentinvention.

As shown in FIG. 2, fixed disk 6 contains computer-executable processsteps to provide a port monitor, a toolbox application, a shellextension module, and registry keys as described below. Fixed disk 6also includes image processing applications, word processingapplications, image files in various image formats, device drivers,other applications and other data files.

FIG. 3 is a block diagram of the internal architecture of camera 14. Itshould be noted that FIG. 3 shows a generic digital camera which may beused in conjunction with the present invention. Of course, other digitalcameras which may be used in conjunction with the present invention maypossess a more complex architecture.

Camera 14 includes lens 30 for gathering light waves from objects towardwhich lens 30 is pointed, charge-coupled device 31 for translating thereceived light waves into analog signals, analog to digital converter 32for converting the analog signals into digital signals, and frame memory34 for storing a single photo frame. Elements 30 to 34 are controlled bymicroprocessor 35, which stores a photo from frame memory 34 into cameramemory 36.

Files stored in camera memory 36 can be downloaded to an external devicevia I/O port 37. According to the preferred embodiment of the invention,and as described above, microprocessor 35 stores a captured photo incamera memory 36 as a full-resolution (1024×768) image file in JPEGformat, and also as a thumbnail resolution (60×80) image file in TIFFformat.

Camera 14 also includes microphone 38 for receiving analog sound wavesduring capture of a photo, and analog to digital converter 39 forconverting the captured sound waves into digital form. It should beunderstood that a camera lacking a microphone may be used in accordancewith the present invention. In the preferred embodiment, however,microprocessor 35 stores digitized sound files in camera memory 36 in amanner that associates a sound file or files with a correspondingfull-resolution file and a corresponding thumbnail image file. For thediscussion below, a set of thus-associated files is referred to as aphoto group.

Port Monitor

FIG. 4 is a flow diagram for describing process steps to monitor adevice port of computer system 1 for connection to a digital camera inaccordance with the present invention. Briefly, the FIG. 4 process stepsare used to detect a digital camera connected to a device port of acomputer system, to receive thumbnail image files stored in the digitalcamera automatically after the digital camera is detected, and to storethe received thumbnail image files in a cache memory. The FIG. 4 processsteps also are used to receive full-resolution image files from thedigital camera after each thumbnail image file stored in the digitalcamera is received, and to receive sound files from the digital cameraafter each full-resolution image file stored in the digital camera isreceived. By virtue of these steps, time required for a clientapplication to access files stored in a digital camera is reduced.

More particularly, a port monitor application is initiated in step S401.As described above, the port monitor application may be retrieved fromfixed disk 6 and stored in RAM 29 for execution therefrom by CPU 15.Next, a background thread is created in step S402. According to theWindows95 operating system, a background thread is notified by theoperating system in a case that an event associated with the thread isdetected. In the present example, the created background thread isassociated with connection of a device to the serial port of computersystem 1.

In step S404, it is determined whether the thread has been signalled bythe operating system.

If not, flow loops within step S404. If so, it is assumed that a deviceis connected to the serial port, and, in step S405, it is determinedwhether the device is a digital camera compatible with the presentinvention. If the device is not a digital camera compatible with thepresent invention, flow returns to step S404.

If the device is determined to be a compatible camera, flow proceeds tostep S406, wherein a camera icon is displayed on the Windows95 desktop.In this regard, FIG. 5 shows camera icon 40 displayed in status area 41of desktop 53. Also shown in FIG. 5 is toolbox user interface window 44,the functionality of which will be described in more detail below. Aftercamera icon 40 is displayed, each thumbnail image file stored in camera14 is sequentially downloaded in step S407.

In step S409, sequential download of each full-resolution JPEG imagefile stored in camera 14 begins. Flow then proceeds to step S411 inwhich it is determined whether a full-resolution image file other thanthe currently-downloading full-resolution image file has received focus.In this regard, focus can be received by a full-resolution image filethrough user selection of an icon representing the file or by userselection of a displayed thumbnail image file associated with thefull-resolution image file. Display of thumbnail images for purposes ofreceiving focus is described more fully below. If focus has not changed,flow proceeds to step S412.

In step S412, it is determined whether all full-resolution image filesin camera 14 have been downloaded. If not, flow returns to step S409. Ifso, flow continues to step S413, wherein all sound files stored indigital camera 14 are downloaded sequentially.

Flow therefore proceeds between steps S409, S411 and S412 until eitherfocus changes or until all full-resolution image files are downloaded.If, in step S411, it is determined that focus has changed, flow proceedsto step S414, wherein the currently-downloading full-resolution imagefile is completely downloaded. Flow then proceeds to step S415, at whichthe full-resolution image file having focus is downloaded. Then, in stepS416, the next full-resolution image file in the original sequence begunin step S409 begins to download. Flow thereafter proceeds from step S416to step S409 and continues as described above.

In another embodiment, any associated sound files are downloadedimmediately after their corresponding associated full-resolution imagefiles are downloaded, thereby providing faster access to a completegroup of associated files.

It should be noted that the port monitor controls all requests foraccess to files stored in digital camera 14. That is, any clientapplication must access the port monitor in order to access files storedin camera 14. In this regard, the port monitor delivers requested filesto client applications from the cache memory to which files from camera14 are downloaded during the FIG. 4 process steps. Accordingly, it isnot necessary to perform repeated downloading of a file from camera 14each time the file is requested. As a result, processing of files storedin camera 14 proceeds quickly.

Moreover, the port monitor allows multiple client applications tosimultaneously access camera files by directing requests for access fromthe client applications to the cache memory.

Preferably, the port monitor controls such access to digital camera 14during, as well as after, execution of steps S406 to S416. Accordingly,a client application need not wait for all files to be downloaded fromcamera 14 before attempting to access one of the files.

It should also be noted that the port monitor continuously monitors theserial port for disconnection of camera 14 once camera 14 is detected.In this regard, upon disconnection of camera 14 from computer system 1,the port monitor removes camera icon 40 from status area 41.

In another aspect of the preferred embodiment, the port monitor is usedto detect connection of a removable camera memory card to computersystem 1. In such a case, the operating system signals the port monitorin case a card is placed in a PCMCIA slot of computer system 1. The portmonitor then determines whether the card is compatible with the presentinvention. If so, camera folders within the card are converted tocanister system objects, the properties and use of which are describedmore fully below.

Toolbox

As described above, the port monitor displays camera icon 40 upondetection of digital camera 14. The port monitor also monitors userselection of icon 40. If icon 40 is selected, the port monitor launchesa toolbox application according to the present invention. Upon launchingthe toolbox application, user interface window 44 of FIG. 5 is displayedon desktop 53.

Window 44 includes View button 45, Get Photos button 46, Contact Sheetbutton 47, Internet button 48, and Settings button 49. Toolbox window 44also includes Help button 50, Minimize button 51 and Close button 52.Each of these buttons is described in detail below.

Initially, selection of Settings button 49, which can be accomplishedusing either mouse 5 or keyboard 4, causes display of Settings propertysheet 55 of FIG. 6. Settings property sheet 55 includes logo area 56, OKbutton 57, Cancel button 58, Help button 59, and three property pages.As shown in FIG. 6, Main property page 60 is initially displayed.

Main property page 60 includes tool preferences area 61 in which, byselecting check box 62, a user can control toolbox window 44 such thatit is never obscured by another window concurrently displayed on desktop53. Tool preferences area 61 also contains check box 63, which controlswhether or not a toolbox icon appears in desktop task bar 43 uponminimizing toolbox window 44.

FIGS. 7 and 8 illustrate minimization of toolbox window 44 in instanceswhere check box 63 is not checked and is checked, respectively.Specifically, in a case that check box 63 in main property page 60 isnot checked and a user selects Minimize button 51, toolbox window 44 isdismissed and camera icon 71, which is displayed by the port monitorduring camera detection, remains in status area 41. In this case, Closebutton 52 and Minimize button 51 perform identical functions.

On the other hand, if check box 63 is checked and a user selectsMinimize button 51, Toolbox button 74 appears in task bar 43. Display oftoolbox button 74 in task bar 43 ensures that the toolbox can beaccessed using an ALT/Tab key sequence, which cycles through openapplications. Also in accordance with the Windows95 operating system, aleft mouse click on bar entry 74 will invoke the toolbox as the currentactive task, while Toolbox button 74 will remain in task bar 43 as longas the toolbox is not closed and a camera is available to computersystem 1.

As described above, minimization results in at least one icon indicativeof the toolbox. In a case that such an icon is selected using a rightmouse click, a context menu is displayed as shown in FIG. 9. In thepreferred embodiment, Maximize option 76 of menu 77 is always disabledbecause toolbox window 44 has only one size and cannot be expanded orcontracted. Minimize option 78 will be enabled in a case that thetoolbox is active and will be disabled if the toolbox is minimized. Thelower four options of context menu 77 invoke processes similar to thoseinvoked by selection of corresponding buttons 45 to 48 of toolbox window44, which are described in detail below. It should be noted that contextmenu 77 does not include a close option, because the toolbox remainsactive as long as a camera is available to computer system 1.

Context menu 81, shown in FIG. 10, is displayed upon a right mouse clickselection of toolbox title bar 80. Maximize option 82 will always bedisabled because window 44 cannot be expanded or contracted. Minimizeoption 83 is enabled, and, if option 83 is selected, window 44 isminimized in accordance with check box 63 of Main property page 60.Selection of About Camera Gear option 84 causes display of a dialog boxcontaining information such as camera gear toolbox name, version number,and copyright notices. Context menu 81 does not contain a Close optionbecause the toolbox remains active as long as a camera is available tocomputer system 1.

Returning to Settings property sheet 55, Main property page 60 alsoincludes Source Camera Settings area 64, in which Properties button 68and Communications Port button 69 are displayed.

Selection of Properties button 68 causes display of a settings dialogcorresponding to the camera detected by the port monitor. For example,FIG. 11 shows Settings dialog 85 corresponding to a Canon PowerShot 600digital camera. As shown in FIG. 11, Settings dialog 85 includesInformation area 86 in which camera model and firmware versions aredisplayed. Dialog 85 also includes Owner's Name area 88, in which acamera owner's name may be input, and Date and Time input areas 89 and91 having spinner controls 90 and 92 for incrementally-changing theinput date and time, respectively. The date and time may also beobtained from computer system 1 for input into areas 89 and 91 usingFrom System button 93.

Dialog 85 also includes battery charge indicator 96 for indicating apercentage of battery power remaining in digital camera 14. Also shownare Installed Camera Memory icon 98 displayed adjacent to a numeralreflecting an amount of memory installed in digital camera 14. Icon 99represents a removable memory card or the like within digital camera 14and is displayed adjacent to a numeral reflecting an amount of memorystorage provided by the card. Camera icon 100 is displayed adjacent toan amount of available memory in digital camera 14, while card icon 101is displayed adjacent to an amount of available memory within theremovable storage medium.

Camera settings dialog 85 also includes logo bar 94, OK button 103 forsaving information entered into dialog 85, and Cancel button 104 fordiscarding any changes made to Settings dialog 85.

Buttons 103 and 104 also cause Settings dialog 85 to be dismissed. Helpbutton 106 provides context-sensitive help regarding dialog 85. Itshould be noted that auxiliary buttons 107 and 108 function similarly tobuttons 106 and 104, respectively.

For the sake of brevity, descriptions of displayed logo bars, OKbuttons, Cancel buttons, Help buttons, and Cancel and Help auxiliarybuttons which function as described with respect to FIG. 11 will behereinafter omitted.

Returning to FIG. 6, in a case that Communications Port button 69 isselected, a Camera Communications Settings dialog is displayed. Such adialog is shown in FIG. 12. Camera Communications Settings dialog 110includes Port input area 111 for indicating a communications portthrough which computer system 1 should communicate with camera 14. Asshown, input area 111 includes a pull-down button for displaying a listof available communications ports. Communications area 113 includesoptions 114 and 115 for selecting whether automatic or customcommunications settings are desired, respectively. In a case that customcommunications are desired, Baud Rate area 116 is provided for inputtinga desired baud rate for communications with digital camera 14. FlowControl input area 117 is also provided for indicating a type of flowcontrol desired for communications between computer system 1 and digitalcamera 14. Both input areas 116 and 117 are provided with a pull-downbutton for displaying a list of potential baud rates and flow controlmechanisms, respectively.

As described above, Settings property sheet 55 includes three propertypages. Save Photos property page 65 is shown in FIG. 13. Property page65 includes check box 118 for controlling whether a dialog box withcontrols similar to that shown in property page 65 will be presented toa user upon selection of Get Photos button 46 of toolbox window 44. Ifnot checked, the values set on property page 65 will govern filedownloading and saving initiated by selection of Get Photos button 46.

In this regard, destination file 119 indicates the drive and directoryto which files downloaded from digital camera 14 will be saved.Selection of Browse button 120 allows a user to change the destinationdirectory by causing display of Set Directory dialog 121, shown in FIG.14. As shown in FIG. 14, Set Directory dialog 121 includes DriveSelection area 123 for selecting a subject drive of available local andnetwork drives, and Directory Selection area 122 for selecting adirectory of the drive selected in area 123.

Returning to FIG. 13, Options area 124 allows user control over whetherfiles are saved in canister format or as separate files. Options area124 also provides user control over names to which files downloaded fromdigital camera 14 are saved, selection of files to be downloaded, formatconversion, prior to saving, of full-resolution JPEG files stored indigital camera 14, and deletion of camera files after downloading. Inthis regard, Explain button 125 is a context-sensitive link to Helpfiles which explain the nature of canisters as well as other controls ofOptions area 124.

In order to understand the nature of canisters, it should be noted that,as described above, each photo captured by digital camera 14 is storedin camera memory 36 as a photo group. Each photo group consists of anassociated full-resolution image file, an associated thumbnail imagefile, and associated sound files, if any sound files were created duringcapture of the photo. According to a preferred embodiment, photo groupscan exist only within a canister. Accordingly, camera 14 stores photogroups in canister format. Preferably, such a canister includes up tofifty photo groups. As described below, the present invention exploitsthe associations between files of a photo group in order to providesimple and flexible management of photo groups. Therefore, in order toexperience many of the advantages of the present invention, anydownloaded photo groups must be saved to a hard disk in canister format.

Custom Save option 127 allows actions which alter the above-describedphoto group canister structure. Accordingly, selection of option 126 oroption 127 is mutually exclusive. In this regard, upon selection ofoption 126, options listed under Custom Save option 127 are disabled.

Three sets of controls are provided within Custom Save option 127.Rename Photos check box 128 can be selected in order to renamedownloaded full-resolution image files, as well as associated thumbnailfiles and sound files (if downloaded), as they are downloaded fromcamera 14 for saving. If check box 128 is not checked, the downloadedfiles are saved with names assigned by digital camera 14. Area 129 isused for inputting a root file name for naming of downloaded files.Input area 130 is provided for assigning a number to the downloadedfiles having the root file name shown in area 129. In this regard, area130 is provided with spinner control 131 for ease of use. Check boxes132 and 133 are used to control whether associated sound files andthumbnail files are downloaded along with full-resolution image files,respectively.

Files downloaded from camera 14 using Custom Save option 127 are namedin accordance with their format and the selected Custom Save parameters.Accordingly, using the parameters shown in elements 129 to 133 ofproperty page 65, a first photo group downloaded from camera 14 will besaved as “yosemite_trip001.jpg”, “yosemite_trip001.tif” and“yosemite_trip001.wav”. The second photo group will be saved as“yosemite_trip002.jpg”, “yosemite_trip002.tif” and“yosemite_trip002.wav”.

Save Photo input area 134 determines a format to which a downloaded JPEGphoto file will be converted prior to saving. Area 134 includes apull-down button for displaying a list of possible image formats. In apreferred embodiment, the provided formats consist of: native cameraformat; Windows bitmap (*.bmp); JPEG (*.jpg); TIFF uncompressed (*.tif);and Flashpix (*.fpx).

Delete Files check box 135 is used to control deletion of files fromdigital camera 14 after downloading and saving the files. In thisregard, Warning check box 136, when checked, provides a dialog to a userbefore any files are deleted. If box 136 is not checked and box 135 ischecked, the downloaded and saved files will be deleted without anyprior warning.

FIG. 15 shows Deletion Warning dialog 140, which is displayed afterdownloading and saving camera files in a case that check box 136 ofproperty page 65 is checked. If OK button 142 is selected, thedownloaded files are deleted. If Cancel button 144 is selected, thefiles are not deleted. Always Warn Before Deleting check box 148controls whether dialog 140 will appear a next time camera files aredownloaded. Advantageously, check box 148 and check box 136 in propertypage 65 are linked. As a result, either both check boxes 136 and 148 arechecked or both are unchecked.

Returning to property sheet 55, internet photo property page 67 isprovided for selecting an internet photo service provider for use inconjunction with Internet button 48 of toolbox window 44. As shown inFIG. 16, internet property page 67 contains Service Provider input area150, which provides a pull-down list box of several internet photoservice providers. Internet photo service providers listed in thepull-down list box preferably include major photo/image archive andservice providers such as PictraNet and PhotoNet. The list of serviceproviders in the list box is contained in a registry so that new serviceproviders may be accessed by adding the service providers to the listthrough plug-ins or upgrades.

Get Photos

As described above, toolbox window 44 provides Get Photos button 46.Upon selection of Get Photos button 46, files from digital camera 14 aredownloaded and saved in accordance with the parameters set in SavePhotos property page 65, described with respect to FIG. 13, and dialog160 of FIG. 18 is displayed, functioning as described below. However, ifPrompt For Settings check box 118 is checked in Save Photos propertypage 65, Save Photos dialog 155 is presented to the user upon selectionof Get Photos button 46. Dialog 155 and property page 65 are linked,therefore, upon initial display of dialog 155, each field locatedtherein reflects the contents of Save Photos property page 65. Thebuttons, options, fields and check boxes of dialog 155 functionsimilarly to their corresponding buttons, options, fields and checkboxes of property page 65, therefore a description thereof is omitted atthis point. In contrast, however, OK button 157 initiates downloadingand saving of the selected files from digital camera 14 to the filedestination shown in dialog 155.

Accordingly, upon selection of OK button 157, dialog 155 is dismissedand dialog 160 of FIG. 18 is displayed. Dialog 160 includes status bar162, which is darkened in direct relation to the percentage of data tobe saved which has been downloaded and saved. Accordingly, the dark areaof indicator 162 moves from left to right of dialog 160 duringdownloading and saving.

Cancel button 163, if selected, aborts file downloading. In this case,all buffers and temporary files will be cleared or deleted and filesalready downloaded and saved to computer system 1 are deleted. Inaddition, dialog 160 is dismissed and toolbox window 44 remains active.Dialog 160 is also dismissed after file saving is complete.

As described above with respect to Save Photos property page 65, Warningdialog 140 is displayed after saving in a case that Warn Before Deletingcheck box 136, and linked check box 148, are checked.

Contact Sheet

Contact Sheet button 47 of toolbox window 44 allows a user to print acontact sheet of all images stored in digital camera 14. Upon selectionof button 47, print dialog 165 of FIG. 19 is displayed to the user.

Contact sheets printed according to the present invention are intendedto be similar to traditional contact sheets produced by conventionaldark room photography. The purpose of such contact sheets is to create aquick reference to each photo on a photo storage medium, in the presentcase a computer-readable medium, in the latter, a roll of film. Inaddition, contact sheets according to the present invention can be usedas a quick method for distributing printed copies of photos captured bycamera 14.

Dialog 165 includes Printer Control area 166 for controlling printer 12so as to print a contact sheet. In this regard, Printer Name input area167 provides an area for listing a printer to be used to print contactsheets, and includes a pull-down list for displaying a list box ofavailable printers, either local or networked. Properties button 168provides access to printer-specific property sheets for control ofprinter properties. In addition, check box 169 allows a user to indicatethat a print job should spool to a file rather that to the printerlisted in Printer Name input area 167.

Spinner control 172 controls a number of contact sheet copies to beprinted. Options area 175 allows a user to set several options forprinting contact sheets. For example, check boxes 176 and 177 withinOptions area 175 allow a user to indicate the date of printing and atitle to be printed on the contact sheet. In this regard, titleinformation is input in Title input area 178. Options 180 and 181 aremutually exclusive and provide a user, respectively, with lower-quality,high-speed output and high-quality, lower-speed output. Similarly,mutually exclusive options 182 and 183 respectively provide a user withprintout of small thumbnail images and large thumbnail images on contactsheet.

Selection of OK button 185 initiates printing of a contact sheet inaccordance with the parameters set in print dialog 165. During contactsheet printing, dialog 180 of FIG. 20 is displayed. Dialog 180 includesstatus bar 182, which shows a darkened area corresponding to a print jobcompletion percentage. Stop button 183 can be selected to abort contactsheet printing. If selected, all buffers and temporary files are clearedor deleted and the print driver/spooler is instructed to abort printing.In this case, dialog 180 is dismissed and toolbox window 44 remains theactive application. Dialog 180 is also dismissed after the system sendsa last contact sheet to printed to the printer/spooler. Layout ofprinted contact sheets will be described in more detail below withrespect to FIG. 41.

Internet

Toolbox window 44 also provides Internet button 48 for uploading camerafiles to an internet photo service provider providing storage anddisplay of photographic images via the WWW. Upon selection of button 48,the internet service provider specified in Internet property page 67 iscontacted and a request for uploading of photos is initiated.Thereafter, the internet photo service provider will provide a user witha login dialog and/or other setup dialogs. The present inventionprovides required upload information such as file location and number offiles. Preferably, in a case that Internet button 48 is selected and nointernet photo service provider is specified in Internet property page67, Settings property sheet 55 will be displayed to the user withInternet property page 67 of FIG. 16 selected. If Cancel button 152 ofproperty page 67 is selected, the Internet toolbox task is aborted andSettings property sheet 55 is dismissed. If OK button 152 is selected,the PhotoNet task continues by connecting with the specified internetphoto service provider and by proceeding as described above.

During file upload, Uploading Status dialog 185 of FIG. 21 is displayedwith status bar 187 indicating percent completion of uploading. Stopbutton 188 can be used to abort the file upload. In this case, allbuffers and temporary files will be cleared or deleted, and the filesalready sent to the connected internet photo service provider will notbe deleted. The toolbox will remain the active application. Statusdialog 185 is dismissed once upload is completed. It should be notedthat in a case that the connected internet photo service providerprovides a file upload status dialog, it will be displayed; dialog 185is provided as a default.

View

View button 45 of toolbox window 44 provides a user with a view of filesstored on camera 14. Explorer user interface 190 of FIG. 22 shows anexample of such a view. The elements and creation of interface 190 aredescribed below with respect to the Shell Extension Module section ofthe present application.

As is evident by the foregoing description, the toolbox applicationprovides simple and fast manipulation of files stored on digital camera14. Although the functionality of the toolbox is less than that providedby the Shell Extension Module described below, the toolbox is intendedto provide fast and simple control over common camera-related functions.

Preferably, the toolbox accesses digital camera 14 through the portmonitor described above. In this case, requests for access from thetoolbox to camera files are diverted by the port monitor to the cachememory to which the port monitor downloads camera files upon detectionof the camera. Accordingly, utilization of the toolbox application inconjunction with the port monitor provides even faster functionality.

Shell Extension Module

Generally, a shell extension module according to the present inventionallows a user to browse files stored on camera 14 intelligently. Thatis, according to the present invention, a user is able to distinguishand separately manipulate associated thumbnail image files,full-resolution files, and sound files located on camera 14 in a mannersimilar to manipulation of typical data files using the Explorerinterface or any other interface for viewing system objects. Moreover,in conjunction with above-described port monitor, such viewing andmanipulation proceeds quickly without need to download a file fromcamera 14 each time a command related to that file is issued.

In this regard, user interface window 190 includes viewing area 192,system object tree area 194, toolbar 196, menu 197, title bar 198,Minimize button 199, Maximize button 200, Close button 201, and statusbar 204. As shown in FIG. 22, PowerShot 600 icon 206 is the currentsystem object, and contains four film canisters. Canister 208 isselected, therefore viewing area 192 reflects the contents of canister208. Since Explorer user interface window 190 is in Display Thumbnailsmode, thumbnail image files stored in canister 208 are displayed inviewing area 192. Other display modes will be described below.

In Display Thumbnails mode, each blocked area surrounding and includinga displayed thumbnail image file of a photo group contains informationindicative of the file and of associated files of the photo group. Inthis regard, Display Thumbnails mode is preferably invoked only when acanister is selected from area 194, because, as described above,thumbnail image files, full-resolution files, and sound files areassociated as photo groups only when existing within a canister.Advantageously, although each blocked area of viewing area 192represents a single captured photo to a user, each blocked area allowsindividual manipulation of files of a photo group representing thecaptured photo.

Due to the reliance of interface 190 on the definition of photo groupswithin a canister, files in canisters preferably cannot be renamed.Furthermore, canisters in cameras cannot be renamed, although canisterslocated on other storage devices may be renamed.

The thumbnail view shown in viewing area 192 consists of displayed 60×80pixel thumbnail images representing each photo group in a selectedcanister. FIGS. 23 and 24 are close-up views of blocked areasrepresenting photo groups as displayed in Display Thumbnails mode.Blocked area 210 shows a 60×80 pixel thumbnail image of a photo grouprepresented by blocked area 210, and numeral 212 indicates anidentification number of the photo group within camera 14. In thisregard, photo group 5 was created after photo group 4 and prior to photogroup 6. In a case that a photo group is deleted from camera 14, theremaining photo groups are renumbered to exclude the deleted photo groupeach time a camera or canister is deselected then re-selected.

Preferably, photo groups within a camera are numbered sequentiallyacross canisters. For example, the first photo group in camera 14 isdesignated photo group 1 within canister 1, and photo groups 51, 52, and53 represent the first, second and third photo groups within canister 2.On non-camera devices, photos are numbered individually by canister sothat each canister contains photo groups numbered from 1 to the totalnumber of photo groups within the canister. Accordingly, photo groupsmay have to be renumbered when transferred, in canister format, from acamera to a non-camera device.

Photo name 215 preferably indicates the date and time that therepresented photo group was created.

FIG. 24 shows various icons that may be displayed along with thumbnailimage 211 within a blocked area representing a photo group. In thisregard, blocked area 220 contains Sound icon 222, Auto-Correct icon 223,and Acquired icon 224. Sound icon 222 indicates that photo group 5,represented by blocked area 220, contains one or more associated soundfiles. Preferably, double clicking sound icon 222 causes the associatedsound files to play in sequence.

Auto-Correct icon 223 indicates that thumbnail image 211 is displayedafter being subjected to an Auto-Correct function. The Auto-Correctfunction will be described below with reference to toolbar 196.

Acquired icon 224 indicates that photo group 5 has been downloaded fromcamera 14 to another storage device or that its associatedfull-resolution image file has been inserted into an application. Eachphoto group within camera 14 will hold its “acquired” state until thecurrent installation of interface 190 is quit, until memory 36 of camera14 is erased, or until camera 14 is disconnected from computer system 1.It should be noted that Acquired icon 224 is displayed only in caseswhere a camera-stored canister is being viewed in area 192 because photogroups within canisters located on other storage devices have, bydefinition, already been acquired.

Viewing area 192 not only provides a user with easily-accessible anddetailed information regarding photo groups stored within a digitalcamera, viewing area 192 also provides a user with means to manipulatephoto groups or associated individual files therein. For example, athumbnail image displayed in area 192 may be selected and dragged to astorage device shown in area 194 or elsewhere on desktop 53. This actionwill cause a full-resolution image file related to the selectedthumbnail image file to be copied to the storage device or desktop 53.In addition, holding down a left button of mouse 5 while dragging willmove the full-resolution file to the storage device or desktop 53 anddelete the corresponding photo group from camera 14. Moreover, holdingdown a right button of mouse 5 while dragging will cause thefull-resolution file to be copied or, if dragged to desktop 53, willcreate a shortcut to the full-resolution file on camera 14.

Similarly, individual sound files within photo groups may be dragged anddropped as described above by selecting and dragging a displayed soundicon. In addition, an entire photo group may be dragged and dropped asdescribed above by selecting an area within a blocked area representinga photo group but outside the displayed thumbnail image and byperforming drag and drop as described above. In a case that an entirephoto group is dragged and dropped in this manner, the related files ofthe photo group will lose their representation as a single entity andwill be copied (or moved) as separate files. Accordingly, subsequentselection of these files will not invoke an Explorer view according tothe present invention, such as that shown in FIG. 22.

Photo groups may also be dragged and dropped into OLE2-compliantapplications, such as Microsoft Word, PowerPoint, FrontPage, or thelike. In such cases, only the full-resolution image file of a photogroup is dropped into the application.

It should be noted that, according to the preferred embodiment, draggingobjects to a location within a storage device causes the file to bemoved. On the other hand, dragging objects from one storage device toanother causes the objects to be copied.

Photo groups are selected by clicking any area of the blocked arearepresenting the photo group except for the sound icon. By holding downthe Shift key during selection, a contiguous selection of photo groupsis made from the currently-selected photo group to the lastpreviously-selected photo group. Holding down the Control key whileselecting various photos allows a user to individually select photos ina non-contiguous manner. In addition, selection of the photos may betoggled while the Control key is pressed down by clicking with the leftbutton of mouse 5.

Double clicking on a displayed thumbnail image file launches an OLEimage container application and opens an associated full-resolutionimage file within the application. Alternatively, double clicking of adisplayed thumbnail image file launches a JPEG default applicationspecified by the system registry and opens an associated full-resolutionfile therein. Advantageously, and in order to preserve the associationbetween a thumbnail image file and a full-resolution image file of aphoto group, the full-resolution image file opened in the applicationwill be read-only, and can be saved only to a non-camera device.

A shell extension module according to the present invention alsosupports context menus activated by selection of a photo group using theright mouse button of mouse 5. In this regard, FIG. 25 shows contextmenu 230, which is displayed upon right button clicking on a photogroup. The Windows95 standard context menu options displayed in menu230, Open with, Send to fax recipient, Send to mail recipient, Send tomail recipient using Microsoft Outlook, Send to Web Publishing Wizard,and Print result in standard behavior according to Windows95. Play Soundoption 232, when selected, is equivalent to double clicking upon adisplayed sound icon. In this regard, in a case that a user right clickson a photo group which does not contain any related sound files, PlaySound option 232 will be disabled.

Selection of Properties option 234 causes display of one of two types ofproperty pages. First, in a case that one photo group is selected,property page 240, shown in FIG. 26, is displayed. As shown, propertypage 240 contains a displayed thumbnail image file of the selected photogroup, the photo group number, the photo group name, the location of theselected photo group, and the date on which the photo group was created.In addition, property page 240 provides details on the size of theassociated files within the photo group as well as the total size of thephoto group. Check boxes 241 and 242 are provided to selectively choosebetween read-only and archive file types.

In a case that Properties option 234 is selected while multiple photogroups are selected, a property page such a property page 245 of FIG. 27is displayed. As shown, property page 245 shows cascading thumbnailimages representing each selected photo group, the number of selectedphoto groups, the total size of all full-resolution image files in theselected groups, of all thumbnail image files in the selected groups, ofall sound files in the selected groups, as well as the total size of allthe selected groups.

Other options shown in context menu 230 may also be selected throughicons displayed in toolbar 196 and will therefore be described withrespect to toolbar 196.

It should be noted that all canisters, whether located on a camera or onanother storage device, are preferably read-only and that, accordingly,no files can be dropped onto a canister, or moved or copied within orinto a canister. Therefore, when files are selected to be moved out of acanister to another storage device, dialog 250 of FIG. 28 is displayed.Dialog 250 contains a warning regarding moving files from a canister aswell as from a camera. Accordingly, dialog 250 is displayed in a casethat files are selected to be moved out of a canister or out of acamera. Dialog 250 provides Copy Instead button 252, which causes theselected files to be copied to their selected destination rather thanmoved. Accordingly, the selected files will remain in the camera orcanister from which they were selected.

Cancel button 253 terminates the move command and the selected fileswill remain in the camera or canister. OK button 254 causes the move tocontinue and the moved files will be deleted from the camera orcanister. Check box 256 may be de-selected so that subsequent attemptsto move files from a canister or camera will not cause dialog 250 toappear.

FIG. 29 is a detailed view of toolbar 196. It should be noted thattoolbar 196 is displayed during viewing of a canister or camera contentsby virtue of the shell extension module. Toolbar 196 includes ObjectSelection area 260, in which a system object from area 194 isrepresented. Toolbar 196 also includes Parent Directory button 262 forproviding a view of a parent folder of a folder currently displayed inviewing area 192.

According to a preferred embodiment of the present invention, toolbar196 includes Auto-Correct button 264. Auto-Correct button 264 is activein a case that one or more photo groups are selected in viewing area192, and is disabled in a case that no photo groups are selected. Button264 acts as a toggle switch in that selected photos are marked forauto-correction once button 264 is depressed. If selected photos havepreviously been marked for auto-correction, the photos are unmarked upondepression of button 264. Moreover, selection of previously-markedphotos causes button 264 to be displayed in a depressed state, andselecting any unmarked photos causes button 264 to be displayed in anundepressed state. In a case that several photo groups are selected inwhich some selected photo groups are marked for photo correction andothers are not marked, button 264 will be displayed in an undepressedstate and subsequent selection of button 264 will result in all of theselected photos being marked for auto-correction.

Moreover, in Display Thumbnails mode, thumbnail image files marked forauto-correction will be subjected to auto-correction, therefore themarked thumbnail image files displayed in area 192 will beauto-corrected and displayed adjacent to icon 223 of FIG. 24. It shouldbe noted that such correction is preferably applied to a correspondingthumbnail image file stored in the cache memory to which the portmonitor downloads camera files, rather than to the actual thumbnailimage file stored within a subject canister. Moreover, in a case than anauto-corrected thumbnail image file is selected and dragged to anapplication or other storage device, auto-correction is performed on theassociated full-resolution image file, which is then saved to thestorage device or opened within the application. Again, thefull-resolution image file is not altered within the subject canister.

Photo groups stored on non-camera devices can be permanently marked forauto-correction and will therefore be displayed along with anauto-correction icon whenever viewed in Display Thumbnails mode. Photogroups stored on a camera cannot be permanently marked forauto-correction, therefore any auto-correction mark is lost upon exitinga system object viewer according to the present invention or upondisconnection of camera 14.

Rotate buttons 266 and 267 are active in a case that a photo group isselected in Display Thumbnails mode. Depression of buttons 266 or 267will cause a selected thumbnail image to rotate 90 degrees in adirection indicated by the depressed button each time the button isdepressed. FIG. 30 shows thumbnail image 269 before and after depressionof button 267.

As described above with respect to Auto-Correct button 264, photo groupsrotated using buttons 266 and 267 are copied or moved using drag anddrop techniques with the applied rotations intact. In this regard,associated full-resolution files stored in the cache memory aresubjected to the applied rotations prior to such moving or copying.

Photo groups stored on non-camera devices can be permanently marked for90 degree rotation such that the associated thumbnail image files areshown rotated each time they are viewed by a system object vieweraccording to the present invention. However, photo groups stored in acamera cannot be permanently marked for rotation and therefore rotationattributes are lost each time the system object viewer is quit or camera14 is disconnected from computer system 1.

Select All button 270 selects each item in viewing area 192. These itemsmay consist either of all canisters in a camera or of all photo groupsin a canister.

Move/Copy Photo Group button 272 causes selected photo groups to bemoved or copied to a new (non-internet) storage location. In thisregard, if photo groups are selected upon depression of button 272, SavePhotos dialog 275 of FIG. 31 is displayed. The elements shown in dialog275 correspond to identical elements shown in Save Photos property page65, therefore descriptions thereof are omitted. However, check box 276does not directly correspond to any element of property page 65. In thisregard, check box 276 causes selected photo groups to be deleted aftercopying, thereby resulting in a “move” function.

In a case that a canister is selected upon depression of button 272,dialog 280 of FIG. 32 is displayed. The elements of dialog 280 aredescribed above with respect to property page 65 and dialog 275.

If button 272 is depressed while a digital camera is selected, dialog282, shown in FIG. 33, is displayed. The settings and functionality ofdialog 282 are also described above with respect to property page 65 anddialog 275.

Delete Photo Group button 285 causes the currently-selected items to bedeleted. If photo groups are selected, then the selected photo groupsare deleted, and if canisters are selected, both the selected canistersand photo groups within the canisters are deleted. In a case that acamera is selected, each canister stored in the camera as well as eachphoto group stored in the canisters is deleted. Since deletion of photogroups from a canister cannot be undone, dialog 287 of FIG. 34 isinitially displayed after selection of button 285. OK button 288 ofdialog 287 deletes the selected files. Cancel button 290 cancels thedeletion and selected files will remain in the camera or canister. In acase that check box 291 is selected, subsequent selection of DeletePhoto Group button 285 will not cause display of dialog 287.

Print button 292 provides printout of full-resolution image files ofselected photo groups. The particular printing process initiated bybutton 292 is determined by the object selected in interface 190 whenbutton 292 is depressed.

In a case that a camera is selected, dialog 295 of FIG. 35 is displayed.Dialog 295 contains Printer area 297 for defining a printer, Photo Rangearea 298 for selecting files to be printed, Copies area 299 forselecting a number of copies to print via spinner control 300, andOptions area 302. Within Options area 302, a user may select severalformatting options for printout. For instance, selection of Date Takencheck box 304 causes a printed sheet to include the date and time that aprinted file was captured. Selection of Title check box 305 causes eachprinted sheet to include a title typed within text box 307. LayoutOptions area 308 allows selection of one of three layout options, onephoto per page, two photos per page, and four photos per page.

In this regard, FIG. 36 shows printed sheet 310 containing title 311 anddate/time stamps 312 and 313, one stamp corresponding to each imageprinted on sheet 310. As can be seen from FIG. 36, sheet 310 is printedin a two photo per page layout. FIG. 37 shows examples of images printedusing the various layout options of area 308.

Within Photo Range area 298, a user may select particular photos forprinting. Selection of All Photos In Camera option 315 causes eachfull-resolution image file stored in camera 14 to be printed. Selectionof Canisters option 317 causes printing of each full-resolution imagefile within the specified range of canisters. In addition, selection ofPhotos option 319 causes printing of full-resolution image files ofphoto groups corresponding to the selected range of photos.

Preferably, the default photo range of dialog 295 is option 315, whilethe default ranges of options 317 and 319 are all canisters in thecamera and all photos in the camera, respectively.

FIG. 38 shows dialog 325, which is selected in a case that a canister isselected upon depression of button 292. Areas 326, 327 and 328 functionsimilarly to areas 297, 299 and 302 described above with respect to FIG.35. Photo range area 330, however, presents a user with a differentrange of options then that shown in dialog 295. Particularly, a user canselect option 332 in order to print all full-resolution image files ofthe selected canister, or option 333 in order to print a range offull-resolution image files from the selected canister. The initial anddefault settings of dialog 325 are preferably such that option 332 isselected and photos option 333 is set to the entire range of photos inthe selected canister.

In a case that a photo group or range of photo groups are selected upondepression of button 292, dialog 335 of FIG. 39 is displayed. Dialog 335is similar to dialogs 295 and 325 except for Photo Range area 337, whichprovides a user with options for printing selected full-resolution imagefiles, all full-resolution image files in the canisters containing theselected photo group(s), or a specified range of full-resolution imagefiles. Default settings for dialog 335 are option 339, wherein the photorange of option 340 set to the photo range of the canister containingthe selected photos.

E-mail button 345 of toolbar 196 invokes the Windows95 standard “Send Tomail recipient” file menu procedure.

Print Contact Sheet button 347 is used to print contact sheets ofselected photo groups. Similar to Print button 292, selection of button347 causes display of one of three dialogs, depending upon the objectsselected during selection of button 347.

In a case that a digital camera is selected during selection of button347, dialog 350 of FIG. 40 is displayed. Dialog 350 includes PrinterControl area 352 and area 354 to select a number of contact sheet copiesto be printed. Photo Range area 355 determines the photo groups whichare represented on a printed contact sheet. In this regard, thefunctionality of area 355 of dialog 350 parallels that of area 298 ofdialog 295.

Options area 356 contains formatting options for printing contactsheets. Date check box 358 causes the contact sheet printing date to beprinted upon printed contact sheets in the form: day name, month day,year. Title check box 359 causes a title printed in text box 361 to beprinted on each contact sheet. FIG. 41 shows sample contact sheet 363including printing date 365 and title 367.

Quality area 370 allows a user to determine the print quality of imagesprinted on the contact sheet. Quick Print option 372 prints thumbnailimage files of the photo groups selected in photo range area 355, afterscaling the files using image up-sampling. Best Quality option 373utilizes full-resolution image files that are down-sampled and thereforeresults in a slower but higher-quality printout than that achieved usingoption 372.

Option 375 is selected in order to print a contact sheet of smallimages, fifty per contact sheet, while option 378 is used to printlarger images, approximately fifteen per contact sheet. OK button 380initiates printing.

In a case that a canister is selected upon depression of button 347,dialog 385 of FIG. 42 is displayed. The functionality of dialog 385corresponds to that of dialog 350. However, Photo Range area 387includes two options, option 388 for printing images representing eachphoto group in the selected canister, and option 389 for printing imagesrepresenting a selected range of photo groups.

Dialog 390 of FIG. 43 is displayed in a case that button 347 isdepressed while a photo group or a range of photo groups are selected.The functionality of dialog 390 is similar to that of dialogs 350 and385 except for Photo Range area 392, which provides for printing acontact sheet of images representing the selected photo groups (option394), representing all photo groups in the canister containing theselected photo groups (option 395), or representing a specified range ofphoto groups (option 396).

Upload button 400 of toolbar 196 causes selected photo groups to beuploaded to the internet photo service provider specified in Internetproperty page 67. In this regard, only full-resolution image files ofthe selected photo groups are uploaded. If a canister is selected upondepression of button 400, then all full-resolution files located in thecanister are uploaded. Similarly, if a camera is selected, allfull-resolution files on the camera are uploaded. In a case that nointernet photo service provider is specified in property page 67,property page 67 will be presented to the user.

Display Thumbnails button 402 provides a display such as that shown inarea 192 of FIG. 22. Again, this view is available only for viewingcanister or camera contents. As described with respect to FIGS. 23 and24, each photo group within a canister is represented in area 192 by a60×80 pixel image.

Large Icon button 405 causes each photo group of a selected canister tobe represented within area 192 by a 32×32 pixel icon and a photo groupname, as shown in FIG. 44. Small Icon button 410 causes display of 16×16icons representing each photo group, and List button 415 shows a list ofeach photo group, along with 16×16 pixel icons representing each photogroup. Views corresponding to Small Icon button 40 and List button 415are shown in FIGS. 45 and 46, respectively.

The icons representing photo groups in FIGS. 44 through 46 representassociated thumbnail image files, full-resolution image files, and soundfiles. The photo group names listed adjacent to the icons consist of thephoto group number, and date and time at which the photo group wascreated. In either of the views shown in FIGS. 44 to 46, double clickingupon a photo group icon will launch an OLE image container application,or the system registry JPEG default application, and open thefull-resolution image file corresponding to the selected photo groupicon within the application.

Details button 420 can be selected to produce a view such as that shownin FIG. 47. In the FIG. 47 view, each photo group is represented by a16×16 pixel icon and a line of detailed information. The detailedinformation preferably includes photo group number, name (date and timetaken), a sound icon if sound files are present, an auto-correct icon,and byte size of the associated full-resolution image file. Doubleclicking on a photo group icon in the FIG. 47 view will also launch anOLE image container application, or a system registry JPEG defaultapplication, and open the corresponding full-resolution file therein.

It should be noted that one common aspect of each viewing mode providedin viewing area 192 of interface 190 is that, because associated filessuch as a thumbnail image file, a full-resolution image file, and asound file are linked together as a photo group within a selectedcanister, only one file entry per photo group is displayed. Hidden fileinformation is presented in status bar 204. This information consists oftotal byte size of selected full-resolution image files, byte size ofhidden files (thumbnail and sound), and total byte size of selectedphoto groups (including thumbnail, full-resolution, and sound files).

Moreover, in each of the view modes provided by the present invention,selection and dragging of a photo group or multiple photo groups causeseach file of the selected photo group(s) to be subjected to drag anddrop functionality. In this regard, if the selected groups are droppedonto desktop 53, a storage device, or a folder, then each file of theselected photo group(s) is dropped on the destination. If the selectedgroups are dropped onto an application, only the full-resolution imagefiles are dropped.

In contrast to the foregoing views according to the present invention,and as described in the above Background Of The Invention section, FIG.48 shows a view of the Windows95 Explorer application resulting fromsoftware developed by Kodak. In FIG. 48, folder contents window 1004displays icons representing each file stored in a Kodak camera memory.However, the represented files are in a proprietary format (.kdc), andare not listed with file names helpful in determining the contents ofeach file.

Menu bar 197 of interface 190 contains menus similar to those found inthe standard Windows95 Explorer application. For example, FIG. 49 showsFile menu 425, in which Print, Contact sheet, Mail recipient, and Uploadto internet account options are equivalent to toolbar 196 buttons 292,347, 345, and 400, respectively.

Edit menu 430 of FIG. 50 contains Move/copy files, Auto-Correct, Rotateplus 90 degrees, and Rotate minus 90 degrees options, which areequivalent to toolbar 196 buttons 272, 264, 267, and 266, respectively.

View menu 435 of FIG. 51 controls views as described above with respectto toolbar 196 buttons 402, 405, 410, 415 and 420. Arrange Iconssub-menu 440 allows displayed icons to be arranged by date and time orby size, where the relevant size is photo group size. In addition, menu435 includes an option for deleting temporary files created according tothe present invention. Accordingly, this option will cause all temporaryfiles not currently in use (by an application other than the currentobject viewer) to be sent to the Windows95 Recycle Bin. If this optionis selected, dialog 441 of FIG. 52 is presented to the user.

As shown in FIGS. 53 and 54, Tools menu 442 and Help menu 443 containstandard Windows95 options.

As described above, rotation and auto-correction functions provided byuser interface 190 cannot be applied to data stored within acanister/camera unless the data is first removed from thecanister/camera. Accordingly, prior to opening a full-resolution imagefile stored in a canister or a camera within an application, a copy ofthe file must be made outside of the canister or camera.

Therefore, a copy of a full-resolution image file is created in theWindows95 System Temp directory when the image file is opened in anapplication. This file is created using a Windows95 system filetemporary name “cgtlbXXX.bmt”, where “XXX” is an incrementing numberstarting at one for each invocation of user interface 190.

Options property sheet 450 of FIG. 55, accessible through menu 435,provides settings which, among other things, determine an amount of diskspace allocated to the temporary files and the procedure to undertake ina case that the allocated disk space is full. For example, TemporaryFiles property page 452 contains Maximum File Space indicator 454 forindicating a maximum disk space allocated to temporary files. Option 456allows a user to specify that the temporary files should be deleted oncethe maximum allocated amount of disk space is used. Option 458 instructsthe present invention to warn a user that an allocated amount of diskspace is full. Moreover, selection of Delete Now button 460 deletes thetemporary files not currently in use by an application other than thepresent application.

The warning issued by virtue of option 458 allows a user to eitherdelete the temporary files or to expand the temporary file disk spaceallocation. The warning dialog used is shown in FIG. 56. In this regard,Delete Files button 465 causes the temporary files to be put in theRecycle Bin and current file activity continues. Increase Space button466 causes display of property sheet 450 with property page 452displayed to the user. At this point, if file space is sufficientlyincreased, or if the temporary files are deleted, current file activitycontinues. If the user selects Cancel button 468 of property page 452,the temporary files are not disturbed and the current file activity isaborted. Clicking on Cancel button 470 also leaves the temporary filesundisturbed and aborts the current file activity.

By virtue of the foregoing shell extension module and below-describedregistry entries, a system object viewer according to the presentinvention may be invoked in at least four ways. For example, becausedigital camera 14 is registered as a Windows95 system object, an iconrepresentative of digital camera 14 appears in My Computer applicationinterface 475, shown in FIG. 57, upon selection of My Computer icon 476.Next, selection of Camera icon 477 launches Explorer interface 478 whichdisplays contents of camera 14 at the canister level. Because interface478 was launched directly from a selection of a system object, interface478 does not contain a system object directory tree such as that shownin area 194 of FIG. 22. A similar Explorer interface may also be invokedby selection of a shortcut icon such as icon 480 of FIG. 58.

It should be noted that, if camera 14 contains only one canister, theprocesses shown in FIGS. 57 and 58 will result in display of userinterface 485 of FIG. 59, in which viewing area 487 and toolbar 488correspond to areas 192 and toolbar 196 of FIG. 22.

A system object viewer interface according to the present invention mayalso be obtained by selecting a canister icon within a folder or ashortcut to a camera canister. As described above, camera canisters maybe located on a camera or on another computerized storage device. Inthis regard, FIG. 60 shows interface 500 resulting from selection ofCanister icon 501.

Finally, as described above with respect to the toolbox application, andillustrated in FIG. 61, selection of View button 45 invokes Explorerinterface 190. As shown, interface 190 shows the contents of the firstcanister located within digital camera 14 in Display Thumbnails mode.

It should be noted that the present invention may be used in conjunctionwith any application or system utility for viewing system objects. Inthis regard, new versions of the windows operating system will allowviewing of system objects via a WWW browser application.

Accordingly, the present invention may also be used to view andmanipulate digital camera images via a WWW browser.

Shell Extension Implementation

The above-described inventive features of the present invention arepreferably implemented using a shell extension. A shell extension inWindows95 is an OLE in-process server, or DLL, which provides OLEcomponent objects to windows applications. As a result, a shellextension serves as an extension to windows itself when system objectsare displayed and manipulated.

Using shell extensions, new types of system objects can be defined andnew procedures for manipulating and displaying the objects can beprovided. With respect to existing system objects, shell extensionscommonly are used to assign new default icons, to add property pages toproperty sheets and to modify context, or right click, menus associatedwith objects.

In order to support a new type of system object, Windows95 requires adeveloper to provide certain entry points to functions which will becalled by the operating system to manipulate and to display thenewly-defined system object. FIG. 62 shows a list of Component ObjectModel interfaces of a shell extension module according to the presentinvention which support these entry points with respect to camera andcanister objects.

The interfaces shown in FIG. 62 are listed according to their generalfunctions. FIG. 63 lists specific methods belonging to each interfaceshown in FIG. 62. The methods are listed according to the object classto which the methods belong in a preferred embodiment of the presentinvention.

Together, the listed interfaces and corresponding methods form a DLLused to support camera and canister system objects according to thepresent invention. However, in order for the windows shell to utilizethe DLL to manipulate and display camera and canister objects accordingto the present invention, the DLL must be registered in the windowsshell.

FIG. 64 shows registry keys for registering the camera and canistersystem objects. In this regard, registry entry A identifies the shellextension module CGExplor.dll to the Explorer namespace by virtue of itsClass ID, 918B1BA1-D032-11d0-9D92-00AA0030AD96. Registry entries inregion B register the Canon PowerShot camera system object with theshell, indicate that CGExplor.dll supports display and manipulation ofthe camera system object, and indicate that the CGExplor.dll moduleprovides a default icon and context menu handlers for use with CanonPowerShot camera system objects. Region B entries also indicate thatCGExplor.dll provides attributes for shell folders representing a cameraobject.

Similarly, registry entries in region C indicate to the shell thatCGExplor.dll provides support for a PowerShot canister system object,and provides a default icon and context menu handlers for managingPowerShot canister system objects. Region C entries also indicate thatCGExplor.dll provides particular attributes for shell foldersrepresenting a PowerShot canister.

Other Port Monitor Client Applications

FIG. 65 is a view of an image processing application utilizing the portmonitor of the present invention. In this regard, in order to acquirefiles from digital camera 14, a user accesses Import option 510 frompull-down menu 511 of image processing application 513. Upon selectionof a TWAIN interface corresponding to digital camera 14, TWAINapplication user interface 515 is displayed. It should be noted that,after display of TWAIN application 515, pull-down menu 511 is dismissed.

As described above, TWAIN application 515 communicates with the portmonitor to access images from digital camera 14. However, as alsodescribed above, the port monitor diverts calls for access to digitalcamera 14 to a cache memory into which files from digital camera 14 aredownloaded. Accordingly, images from digital camera 14 need not bedownloaded anew from camera 14 upon invocation of dialog 515. As aresult, the present port monitor provides fast acquisition andmanipulation of images stored on digital camera 14 from any clientapplication.

While the present invention is described above with respect to what iscurrently considered its preferred embodiments, it is to be understoodthat the invention is not limited to that described above. To thecontrary, the invention is intended to cover various modifications andequivalent arrangements included within the spirit and scope of theappended claims.

1.-25. (canceled)
 26. An apparatus comprising: a connecting unitconstructed to disconnectably connect to a digital camera via aconnection interface to the digital camera; a first receiving unitconstructed to receive one or more thumbnails of image data stored in astorage medium of the digital camera automatically from the digitalcamera after connecting to the digital camera by the connecting unit; asecond receiving unit constructed to receive the image data from thedigital camera; a display control unit constructed to display thethumbnails received by the first receiving unit in a displaying unit;and an uploading unit constructed to upload the image data received bythe second receiving unit via the internet, wherein the display controlunit displays the thumbnails received by the first receiving unit as alist together with an instruction button both in the same window,wherein the instruction button is for a user to instruct start ofuploading of the image data by the uploading unit.
 27. An apparatus asclaimed in claim 26, further comprising: a selecting unit constructed toaccept an instruction to select an image data received by the secondreceiving unit from the user, wherein the uploading unit performsuploading of an image data selected by the selection instruction ifstart of the uploading process is instructed by the instruction button.28. An apparatus as claimed in claim 27, wherein the display controlunit further displays a folder structure of the storage medium of thedigital camera in same the window including the list of the thumbnailsand the instruction button.
 29. An apparatus as claimed in claim 28,wherein the display control unit displays the folder structure of thestorage medium of the digital camera by using an icon.
 30. An apparatusas claimed in claim 28, wherein the uploading unit performs uploading ofall the image data in a selected folder if start of the uploadingprocess is instructed by the instruction button and if the folder isselected by the selection instruction.
 31. An apparatus as claimed inclaim 28, wherein the display control unit displays an icon indicatingthe digital camera and an icon of another apparatus disconnectablyconnected to the information processing apparatus with the folderstructure of the storage medium of the digital camera.
 32. An apparatusas claimed in claim 31, wherein the display control unit displays amodel name of the digital camera with the icon indicating the digitalcamera.
 33. An apparatus as claimed in claim 26, further comprising asetting unit constructed to set an upload destination of image data bythe uploading unit.
 34. An apparatus as claimed in claim 33, wherein thedisplay control unit displays a second window for a user to performsetting by the setting unit separately from the window including thelist of the thumbnails if start of uploading process is instructed fromthe instruction button by the uploading unit and if an uploaddestination is not set by the setting unit.
 35. A method of controllingan information processing apparatus to which a digital camera isdisconnectably connectable via a connection interface to the digitalcamera, the method comprising the steps of: receiving one or morethumbnails of image data stored in a storage medium of the digitalcamera automatically after the information processing apparatus connectsto the digital camera; receiving the image data from the digital camera;displaying the received thumbnails as a list in a display unit, whereinthe list of received thumbnails is displayed in the same window of thedisplay unit as an instruction button; and uploading the received imagedata via the internet; wherein the instruction button is for a user toinstruct start of uploading of the image data.
 36. A computer-readablestorage medium storing a computer-executable program for controlling aninformation processing apparatus, wherein a digital camera isdisconnectably connectable to the information processing apparatus via aconnection interface to the digital camera, wherein when executed theprogram controls the information processing apparatus to perform thesteps of: receiving one or more thumbnails of image data stored in astorage medium of the digital camera automatically after the informationprocessing apparatus connects to the digital camera; receiving the imagedata from the digital camera; displaying the received thumbnails as alist in a display unit, wherein the list of received thumbnails isdisplayed in the same window of the display unit as an instructionbutton; and uploading the received image data via the internet; whereinthe instruction button is for a user to instruct start of uploading ofthe image data.